using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;

namespace Imagination.Display
{
    public abstract class Screen : DrawableGameComponent
    {
        protected List<GameComponent> components;
        protected bool blocksDraw;
        protected bool blocksUpdate;
        protected bool isActive = true;

        public bool BlocksDraw
        {
            get { return blocksDraw; }
            set { blocksDraw = value; }
        }

        public bool BlocksUpdate
        {
            get { return blocksUpdate; }
            set { blocksUpdate = value; }
        }
	
        public List<GameComponent> Components
        {
            get { return components; }
        }

        protected Screen(Game game) : base(game)
        {
            components = new List<GameComponent>();
        }

        public abstract override void Draw(GameTime gameTime);
        public abstract override void Update(GameTime gameTime);

        public bool IsActive
        {
            get { return isActive; }
            set { isActive = value; }
        }
    }
}
